// 告诫函数-函数作为返回值
function makeFn() {
    let msg = "Hello function";
    return function () {
        console.log(msg);
    };
}
const fn = makeFn();
// 将函数返回值赋值给一个变量
fn();
// 函数自身执行两次
makeFn()();

// 只执行一次函数
function once(fn) {
    let flag = false;
    return function () {
        if (!flag) {
            flag = true;
            fn.apply(this, arguments);
        }
    };
}

let pay = once(function (money) {
    console.log(`支付了${money}元`);
});

// 不管调用几次都是只执行一次
pay(5);
pay(5);
pay(5);
pay(5);
